package com.tiancheng.trade.settlement.model.settlement;

import com.baomidou.mybatisplus.annotation.TableName;
import com.tiancheng.trade.settlement.model.base.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @Auther: liudong
 * @Date: 2024/3/31 16:20
 * @Param ${tags}
 * @Description:
 */
@Getter
@Setter
@ToString
@TableName("payment_order_finish")
public class PaymentOrderFinish extends BaseEntity {


    /**
     * 银行流水号
     */
    private String payChannelOrderid;
    /**
     * 支付渠道
     */
    private String payChannel;
    /**
     * 支付方式
     */
    private String payWay;

    /**
     * 银行侧渠道支付订单号
     */
    private String bankFlowId;

    /**
     * 渠道支付订单号
     */
    private String flowId;

    /**
     * 交易类型：订单类型：pay 支付，refund 退款
     */
    private String transactionType;

    /**
     * 交易时间
     */
    private LocalDateTime payTime;

    /**
     * 付款人信息
     */
    private String payerInformation;

    /**
     * 付款银行
     */
    private String payingBank;

    /**
     * 订单金额
     */
    private Integer orderAmount;

    /**
     * 交易金额
     */
    private Integer payAmount;

    /**
     * 手续费
     */
    private Integer serviceCharge;

    /**
     * 结算金额
     */
    private Integer settlementAmount;

    /**
     * 费率
     */
    private BigDecimal rate;

    /**
     * 银行侧订单金额
     */
    private Integer bankOrderAmount;

    /**
     * 银行侧交易金额
     */
    private Integer bankPayAmount;

    /**
     * 银行侧手续费
     */
    private Integer bankServiceCharge;

    /**
     * 银行侧结算金额
     */
    private Integer bankSettlementAmount;

    /**
     * 银行侧费率
     */
    private BigDecimal bankRate;

    /**
     * 银行侧交易时间
     */
    private LocalDateTime bankPayTime;

    /**
     * 原交易银行流水号
     */
    private String originalPayChannelOrderid;

    /**
     * 原交易第三方订单号
     */
    private String originalFlowId;

    /**
     * 银行侧原交易银行流水号
     */
    private String bankOriginalFlowId;

    /**
     * 银行侧原交易第三方订单号
     */
    private String bankOriginalPayChannelOrderid;

    /**
     * 商户code
     */
    private String merchantCode;

    /**
     * 商户名称
     */
    private String merchantName;
    /**
     * 对账时间
     */
    private LocalDate reconciliationDate;
    /**
     * 对账时间
     */
    private LocalDateTime reconciliationTime;

    /**
     * 对账结果：success：正常，abnormal：异常,notmatch:未匹配
     */
    private String reconciliationStatus;

    /**
     * 对账次数
     */
    private Integer reconciliationCount;
    /**
     * 备注
     */
    private String remark;
    /**
     * 差异类型，0-平台有，1-平台无
     */
    private Integer finishType;
    /**
     * 支付订单号
     */
    private String paymentId;
    /**
     * 优惠金额
     */
    private Integer discount;
    /**
     * 银行侧优惠金额
     */
    private Integer bankDiscount;
    /**
     * 已处理状态：finish：完成，unfinish：为完成
     */
    private String finishStatus;
}
